Device Tree

DT(Device Tree)
시스템의 장치를 설명하는 노드가 있는 트리 구조의 데이터
장치들에 대한 세부 사항을 운영체제에 하드코딩하지 않고 부팅 시 운영체제로 전달되는 데이터

부트로더가 디바이스트리를 메모리에 로드하고 디바이스트리에 대한 포인터를 커널에 전달한다.
커널은 디바이스트리를 이용해서 CPU, Memory, Bus 및 주변 장치 등의 구성 요소를 유연하게 사용하고 관리함.

/sys/firmware/devicetree

구성 요소 및 드라이버 사용을 위한 compatible, 서로 간의 관계에 대해서 정의
.dts
/ {
node1 {
a-string-property = "A string";
a-string-list-property = "first string", "second string";
a-byte-data-property = [0x01 0x23 0x34 0x56];
child-node1 {
first-child-property;
second-child-property = <1>;
a-string-property = "Hello, world";
};
child-node2 {
};
};
node2 {
an-empty-property;
a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */
child-node1 {
};
};
};
“/“    최상위 루트 노드

nodeName@UnitAddress{ };

PropertyName=“PropertyValue”
ByteProperty=[0x01 0x23 0x34 0x56]
thirtytwoBeatProperty=<1 2 3 4>

compatible: "제조사, 모델명"